home *** CD-ROM | disk | FTP | other *** search
/ BBS Toolkit / BBS Toolkit.iso / gt_power / gttutors.zip / DISINFO.TXT next >
Text File  |  1987-06-26  |  23KB  |  507 lines

  1. *****************************************************************
  2. Following  is  the  text portion of a 'reply' to  the  series  of 
  3. tutorials  that I have constructed and made available to  callers 
  4. of  my BBS system on various subjects related to  communications.  
  5. This   'reply'  is  from  Chuck  Forsberg,  author   of   ZMODEM.  
  6. Throughout  his  original text (which is included  in  full)  are 
  7. comments  and clarifications by Paul Meiners and myself.  All  of 
  8. our  comments are bracketed between /*...*/ symbols and have  our 
  9. names attached to identify source.        --James Davis
  10.                                         (713) 558-5015 Voice
  11.                                         (713) 497-2306 Data
  12. *****************************************************************
  13.  
  14. /*  So far as I know, there have been two fundamental  errors  in 
  15. the  content of my tutorials:  the first was that in  an  initial 
  16. version  I  indicated that SEAlink protocol used 32-bit  CRC,  it 
  17. does  not.  The second is that I inadvertantly  confused  SEAlink 
  18. and  Zmodem when discussing the availability of  network-friendly 
  19. implementation.   I apologize for the inclusion of these  errors.  
  20. In  defense  I can only say that the tutorials  were  constructed 
  21. 'live'  as the result of capturing my spontaneous responses to  a 
  22. series of questions asked by my users, sometimes at 2:00 a.m.  in 
  23. the  morning.   Finally,  I have never  claimed  that  Zmodem  is 
  24. anything but an excellent example of contemporay protocols and am 
  25. dismayed  at  the  crudeness of Mr. Forsberg's  'reply'  and  his 
  26. suggestion  that  I  am  'brain  damaged  as  a  result  of  drug 
  27. intoxication'  -  a  description  that  my  attorney  is  now  in 
  28. possession of.   --James Davis
  29. */
  30.  
  31.  
  32.  
  33.          Factual Errors in "GTTUTOR" and "MEGAlink" files
  34.                        (Part of COMTUT.ARC)
  35.                 Chuck Forsberg omen!caf Rev:6-23-87
  36.  
  37. Some files connected with a recently released shareware "Powercomm"
  38. communications program have recently come to my attention.
  39.  
  40. /*
  41.      Let's get it right, the name of the product is "GT PowerComm".
  42.  
  43.           --Paul Meiners
  44. */
  45.  
  46. The "Communications Tutor" files contained in "comtut.arc" are little more
  47. than a sales pitch for a modem program.  These files are so full of errors
  48. and distortions they have minimal didactic value.  They disguise that fact
  49. so well they are carried on many boards that normally reject such blatant
  50. advertising.
  51.  
  52. /*
  53.      In actual fact, the purpose of the "tutor" files is not to sell
  54.      anything.  The purpose is to try to give a frame of reference to
  55.      confused users.  Something Mr. Forsburg has neglected to do.
  56.  
  57.           --Paul Meiners
  58. */
  59.  
  60. The so-called "tutorial's" claim that CRC-16 increases XMODEM reliability
  61. to near perfect ignores the fact that most XMODEM-CRC file transfer
  62. failures are the result of corruption of XMODEM control sequences that are
  63. *not* protected by a 16 bit CRC.  Omen's "Cybernetic Data Recovery"
  64. catches many of these errors, but some still cause XMODEM failures.  Other
  65. programs do not fare as well.
  66.  
  67. /*
  68.      Translation: Mr. Forsburg is proud of his product, with some reason.
  69.      However, he neglects the main point, the reliability of any protocol
  70.      is dependent on its implementation.  CRC-16 is a very reliable error
  71.      detection device, when used properly.   Our disk controllers use it
  72.      all the time!
  73.  
  74.           --Paul Meiners
  75. */
  76.  
  77. GTTUTOR confuses YMODEM protocol with XMODEM-1k.  YMODEM, developed in the
  78. early 1980's, preserves both the exact file length and the modification
  79. time of transferred files.  Like XMODEM, XMODEM-1k adds garbage to the end
  80. of files that are not an exact multiple of the protocol's block length.
  81. Since this process is not cumulative, no disk storage space is lost on
  82. today's MSDOS disks where the smallest cluster size is 1k.
  83.  
  84. /*
  85.      In Mr. Forsburg's original Ymodem specifications, from which I wrote
  86.      the protocol drivers for "GT PowerComm", there is no reference to an
  87.      Xmodem-1k.  In the original documentation, supplied by Mr. Forsburg,
  88.      the specification is given for two forms of Ymodem.  A simple Xmodem
  89.      extension, which he now calls Xmodem-1k, and a batch version.  In that
  90.      document both protocols are referred to as Ymodem.
  91.  
  92.           --Paul Meiners
  93. */
  94.  
  95. Having missed the point about YMODEM, GTTUTOR goes on to describe how
  96. their "1K Telink" protocol downshifts from 1024 byte to 128 byte blocks
  97. when encountering a set of 6 errors.  Thank Heavens they didn't call it
  98. "ymodem".  The GTTUTOR file fails to mention that YMODEM.DOC specifically
  99. forbids this form of downshifting because changing the size of an
  100. unacknowledged block allows data errors to escape detection by the CRC.
  101.  
  102. /*
  103.      Really.  It sounds like Mr. Forsburg has not read his own documentation.
  104.      On page 7 of his 1985 description of Ymodem Batch, he gives a detailed
  105.      example of how to mix 1024 and 128 byte packets.  This is just becoming
  106.      too silly.  Does Mr. Forsburg expect this to be taken seriously?
  107.  
  108.      One does not change the size of a packet that has not been Ack'ed.  You
  109.      shift to smaller packets ONLY after all outstanding packets have finally
  110.      been Ack'ed.  To suggest otherwise is too foolish for words.
  111.  
  112.      The fact is well recognized in the field that smaller packets have a
  113.      better chance on noisy lines.  This is not didactic, but empirical.
  114.  
  115.           --Paul Meiners
  116. */
  117.  
  118. Most intriguing is the comment that ZMODEM is slow.  This comes as a great
  119. surprise to ZCOMM and Pro-YAM users who routinely get throughputs better
  120. than 18000 bps when transferring files to PC-XT class machines from Unix.
  121. Telebit TrailBlazer modem users who download files from TeleGodzilla over
  122. wretched (Thanks, PNB) phone lines with throughputs up to 1350 characters
  123. per second would join in the laughter.
  124.  
  125. /*   Fact, in the first series of tests that we ran of Zmodem  we 
  126. were  disappointed in the performance we obtained.   Having  been 
  127. told to expect 99% transmission efficiencies and realizing  about 
  128. 90%  during  our tests I found it was slower  than  expected  and 
  129. certainly  slower than Ymodem which I described as the  'King  of 
  130. performance'.  The second tutorial was produced many weeks  later 
  131. after  we had been successful in some new tests (because  we  had 
  132. obtained  a working and more efficient version of DSZ.EXE) and  I 
  133. then  pointed out that Zmodem was indeed very fast, though  still 
  134. not as fast as Ymodem.  --James Davis
  135. */
  136.  
  137. /*
  138.      Unfortunately, most of us do not have Telebit TrailBlazer's.  The
  139.      simple fact is that Mr. Forsburg measures performance by the number
  140.      of bytes sent down the tube in a unit of time.  This is very misleading.
  141.      The performance as measured in "GT PowerComm" is taken by dividing
  142.      the size of the file by the time of transmission.  This takes into
  143.      account the cost of overhead.  Like escaped control characters.  Mr.
  144.      Forsburg would have us believe that escaped control characters have
  145.      no effect on performance.  But I know better, because I pay the phone
  146.      bill.
  147.  
  148.           --Paul Meiners
  149. */
  150.  
  151. GTTUTOR's claim that ZMODEM is too slow is especially puzzling because it
  152. later claims ZMODEM fails to operate with 9600 bps buffered modems because
  153. it is too fast!!  So here we have a protocol that is both too slow and too
  154. fast.  The relevant word isn't "slow" or "fast", it's "bogus".
  155.  
  156. /*
  157.  
  158.      Mr. Forsburg continues to display his misunderstanding.  Zmodem transmits
  159.      bytes fast.  There has never been a claim to the contrary.  It merely
  160.      transmits files slowly.  Any protocol that uses escaped characters,
  161.      transmits files more slowly than more optimized protocols.  For example,
  162.      SEAlink has a better performance rating than Zmodem, because it escapes
  163.      no control characters at all.
  164.  
  165.           --Paul Meiners
  166. */
  167.  
  168. GTTUTOR further states that ZMODEM uses 256 byte blocks.  In actuality,
  169. ZMODEM uses a variable subpacket length up to 1024 bytes.  A ZMODEM data
  170. frame can encompass an entire file.
  171.  
  172. /*
  173.      Mr. Davis misunderstood.  Which is forgivable considering the complexity
  174.      of Mr. Forsburg's documentation.  Byzantine is too kind a characterization.
  175.  
  176.           --Paul Meiners
  177. */
  178.  
  179. Davis mentions that ZMODEM is "not a protocol that is written into a
  180. program like GT".  Considering how little Davis understands about
  181. ZMODEM, that is indeed fortunate.
  182.  
  183. /*
  184.      I restate, I would very much like to have Zmodem internal to GT, but
  185.      find I lack the required time to accomplish the task.  Largely due to
  186.      the Byzantine nature of Mr. Forsburg's documentation.  A fine protocol
  187.      that suffers from verbose documentation.
  188.  
  189.           --Paul Meiners
  190. */
  191.  
  192. Davis mentions he twice called his "powercomm" "procomm" in his
  193. documentation.  He contemplates how embarrassed he would have been if the
  194. documentation had been released that way.  So, he took POLYTRON's PowerCom
  195. trademark, doubled the "m" letter, and called his program that.
  196.  
  197. /*
  198.      The name of the product is "GT PowerComm".  It is not Mr. Davis'.
  199.      It is mine.
  200.  
  201.           --Paul Meiners
  202. */
  203.  
  204. When mentioning that SEALINK is becoming popular because the Opus BBS
  205. system supports it, GTTUTOR fails to mention that Opus now supports ZMODEM
  206. as well.
  207.  
  208. /*
  209.      The new version of Opus, at this writing, is still in beta test.
  210.      It will support Zmodem, which is a much better protocol than SEAlink.
  211.      I am very happy to see this happen.  Wish everyone supported Zmodem.
  212.  
  213.           --Paul Meiners
  214. */
  215.  
  216. GTTUTOR complains that ZMODEM requires ten Ctrl-X's in a row to abort a
  217. transfer.  As with many observations in these files, this observation is
  218. wide of the mark, ZMODEM only requires five.  If Davis had read the ZMODEM
  219. Protocol Description before flaming, he would have noticed the comment
  220. that ZMODEM originally required only two Ctrl-X's in a row to abort, but
  221. this was changed to five because several transfers had failed when line
  222. noise generated two Ctrl-X characters in a row.
  223.  
  224. /*
  225.      To be absolutely honest, DSZ gets changes so often that it is
  226.      impossible to keep up with it.  There are many BBS's that run
  227.      DSZ and warn you to use "Ten Ctrl-X to cancel...".  If this has
  228.      changed or was incorrect, I apologize.
  229.  
  230.           --Paul Meiners
  231. */
  232.  
  233. GTTUTOR further claims: "Because it is not network friendly it (ZMODEM)
  234. does not bother with (doesn't have to) escape coding anything.  This is
  235. probably a fatal mistake to its future particularly as the networks get
  236. crowded." Such a comment makes one wonder if the author had ever read the
  237. ZMODEM Protocol Description except perhaps while brain damaged from drug
  238. intoxication.  Again, reality has little to do with GTTUTOR's world;
  239. ZMODEM escapes all the network control characters used by the major
  240. PSVANs, and has an option to escape all control characters.  If
  241. "powercomm's" MEGAlink protocol is implemented according to its April 18
  242. document, it is much less network friendly than ZMODEM.
  243.  
  244. /*
  245.      This is such drivel.  Zmodem is obviously network friendly.  Where
  246.      did he get the idea that we claimed otherwise.  This is beneath
  247.      comment.
  248.  
  249.           --Paul Meiners
  250. */
  251.  
  252. /*  As my opening comments pointed out, I inadvertantly described 
  253. SEAlink  as  being Network friendly and Zmodem as not  being  so.  
  254. Mr. Meiners has not made any such comments and apparantly has not 
  255. seen that particular tutorial.  My error and I will correct it.
  256. -- James Davis
  257. */
  258.  
  259. GTTUTOR closes with a section on high speed (>2400 bps) modems.  It should
  260. come as no surprise that Davis still hates ZMODEM, not bothering to set
  261. DSZ and the modem to use the same flow control method.  Remember, this is
  262. the same ZMODEM protocol that is too slow for slow modems, or so we were
  263. told.
  264.  
  265. /*
  266.      Where does he get the idea that Mr. Davis "hates Zmodem"?  This could
  267.      not be further from the truth.  Mr. Davis and I have the greatest
  268.      respect for Zmodem (although my respect for Mr. Forsburg is slipping
  269.      a little right now).  I remember that Mr. Davis even talked me into
  270.      continuing support for Zmodem when I threatened to drop it due to
  271.      Mr. Forsburg's incessant releases of DSZ.  He doesn't even have a
  272.      version number for DSZ, just uses the date for a version number!
  273.      Kind of makes life hard for developers trying to keep up with him.
  274.      Zmodem is a fine protocol.  The premier protocol in the field today.
  275.      Nobody hates it.  What a weird idea.
  276.  
  277.           --Paul Meiners
  278. */
  279.  
  280. You'd think that a tutorial on data communications might have mentioned
  281. there are two methods of flow control.  A tutorial might have mentioned
  282. what this means in practical terms.  For example, hardware flow control
  283. locks up communications unless the cabling is exactly correct (which it
  284. usually isn't).  That's why Pro-YAM, ZCOMM, DSZ, most networks and modems
  285. default to software flow control.  But for this test, nobody bothered to
  286. use the defaults.
  287.  
  288. /*
  289.      Note: If your cabling is not correct, you are sure to have lots and
  290.      lots of troubles.  Beyond any simple problem with flow control.  You
  291.      and all modem users better make sure that their cables and modems are
  292.      installed correctly.  No end of problems will be the result otherwise.
  293.      Geez, I thought everyone knew that there is no substitute for proper
  294.      installation.
  295.  
  296.           --Paul Meiners
  297. */
  298.  
  299. Here is an updated version of the speeds using 9600 bps transmission, with
  300. the ZMODEM test using TrailBlazer modems with a 9600 bps interface speed
  301. (better results are obtained at 19200 bps).  The ZMODEM results show a
  302. 473104 byte ASCII file transferred over a phone line to an IBM PC with an
  303. XT class hard disk.
  304.  
  305.        WXmodem   60.4 % efficiency  580 cps
  306.        SEAlink   75.6 %             725 cps
  307.        Ymodem    77.6 %             744 cps
  308.        MegaLink  98.5 %             945 cps
  309.        ************************************
  310.        Zmodem    98.8 %             948 cps
  311.  
  312. /*    This   additional  'test'  is  impossible!   It   is   also 
  313. meaningless.  Mr. Forsberg did not use the exact same hardware as 
  314. I  did,  did not have controlled environments on both ends  as  I 
  315. did,  and WORST OF ALL he could not possibly have sent  the  same 
  316. file that I sent in each of the tests that I ran.  For those that 
  317. read  the  tutorial you know that every file will  have  its  own 
  318. unique  performance with network friendly protocols because  they 
  319. have variable numbers of bytes that may need to be escape  coded.  
  320. Further, the file size affects how significantly overhead factors 
  321. into  total  transfer  efficiency.  Mr. Forsberg  could  just  as 
  322. easily have said that Zmodem developed performance of 960 cps and 
  323. it would have been just as credible.   Finally, he claims to have 
  324. sent  an  ASCII file of 473,104 bytes.  I used  an  800,000  byte 
  325. ARCed  file  in  order to  ELIMINATE   the  hardware  compression 
  326. efficiency that intelligent modems are capable of providing.  His 
  327. test  may well have indicated that his modem is quite  efficient, 
  328. but it says NOTHING about Zmodem relative to the other protocols.
  329. --James Davis
  330. */
  331.  
  332. Contrary to GTTUTOR's earlier claims of ZMODEM lethargy, DSZ on an XT, let
  333. alone an AT, is fast enough to overdrive a high speed modem when flow
  334. control is mismatched.  DSZ, ZCOMM, Pro-YAM and PowerCom default to
  335. XON/XOFF flow control, as do TELEBIT TrailBlazer and many other buffered
  336. modems.  They work properly, even when using a 19200 bps interface speed
  337. and a 300 bps modem connection.  ZMODEM programs have been used with
  338. TrailBlazer, Fastcomm, MNP, Data Race, and other buffered modems.  In
  339. fact, Pro-YAM's experience with high speed modems is so extensive that
  340. Pro-YAM includes special code to work around a subtle firmware bug in some
  341. of the modems.
  342.  
  343. /*
  344.      First, MegaLink supports both forms of flow control.  Second, many
  345.      circumstances require BOTH forms of control to be used simultaneously.
  346.      MegaLink supports this as well.  The whole issue of flow control is
  347.      a "red herring" on Mr. Forsburg's part.  I am beginning not to take
  348.      this document seriously.
  349.  
  350.           --Paul Meiners
  351. */
  352.  
  353.  
  354.                         MEGAlink
  355.  
  356. MEGAlink is claimed to be a fast, inexpensive, and reliable file transfer
  357. protocol.
  358.  
  359. /*
  360.      I have not claimed this.  This was my goal.  I let others describe
  361.      whether or not I have attained my goal.  Being somewhat more modest
  362.      than Mr. Forsburg.
  363.  
  364.           --Paul Meiners
  365. */
  366.  
  367. The MEGAlink description identifies ZMODEM as the ideal protocol, fast and
  368. reliable (it is), but expensive (i.e., non trivial) to implement.  (ZMODEM
  369. protocol software is available in PUBLIC DOMAIN C source code.) Since most
  370. of the problems in porting ZMODEM to a new system arise from the
  371. concurrency of data transmission and compiler bugs affecting the CRC
  372. calculations, MEGAlink offers no advantage here unless one's only compiler
  373. is Turbo Pascal.  Now that Turbo C can be bought for less than $60.00,
  374. what's the big deal already?
  375.  
  376. /*
  377.      There are several "big deals".  First, Mr. Forsburg does not deny that
  378.      Zmodem is non trivial to implement.  That is indeed a "big deal", as
  379.      one the goals of most PD protocol designers, all the way back to Ward
  380.      Christiansen, is simplicity of design.
  381.  
  382.      The second "big deal" is that the world does not begin and end with
  383.      C.  There are quite a few other languages out there.  It seems that
  384.      Mr. Forsburg is rather pompous, considering Zmodem written once and
  385.      for all, because it is coded in C.
  386.  
  387.           --Paul Meiners
  388. */
  389.  
  390. MEGAlink claims to use the Jennings Telink header block format.  The
  391. header block described actually resembles the SEAlink header block, which
  392. is different from and incompatible with the Telink header.
  393.  
  394. /*
  395.      MegaLink does use the Telink header block.  As does SEAlink, by the
  396.      way.  This is simply a misstatement of fact by Mr. Forsburg.
  397.  
  398.           --Paul Meiners
  399. */
  400.  
  401. The developer(s) of MEGAlink did not read the ZMODEM protocol description
  402. carefully, or they would not have repeated so many of the design errors of
  403. previous protocols that were identified in the ZMODEM document.
  404.  
  405. /*
  406.      What Mr. Forsburg considers design errors, I prefer to call
  407.      simplifications.
  408.  
  409.           --Paul Meiners
  410. */
  411.  
  412. In addition to repeating many of the mistakes that were identified and
  413. avoided in the design of ZMODEM, MEGAlink's author(s) make a number of
  414. false statements about ZMODEM.
  415.  
  416. /*
  417.      That could be.  The only thing I have ever said about Zmodem is
  418.      that it is a fine protocol and rather difficult to implement.
  419.  
  420.           --Paul Meiners
  421. */
  422.  
  423. MEGAlink offers no advantages over the well designed ZMODEM protocol
  424. except as a vehicle to hype the "powercomm" program.
  425.  
  426. /*
  427.      I gave Mr. Forsburg his due.  But the fact remains that neither
  428.      Zmodem or MegaLink are easy to implement.  Ask John Friel, author
  429.      of Qmodem.  MegaLink offers a distinct advantage to the implementor.
  430.      It offers a structure based on packets.  A structure that any author
  431.      who has done Xmodem, should feel comfortable with.  Obviously, Mr.
  432.      Forsburg has different opinions.  Zmodem's primary asset is DSZ. An
  433.      excellent implementation of a difficult protocol.  Zmodem is made
  434.      more difficult by Mr. Forsburg's steadfast refusal to stop fiddling
  435.      with it.  And by the fact that his documentation of it verbose, so
  436.      verbose that it is indeed very easy to miss the point.
  437.  
  438.           --Paul Meiners
  439. */
  440.  
  441. Before filling up disk quotas and phone lines with bleeding about the
  442. "MEGAlink" protocol, MEGAlink's authors should have taken the time to
  443. understand the workings of ZMODEM.  They could have implemented a useful,
  444. user friendly, robust, efficient, well thought out protocol instead of
  445. MEGAlink.
  446.  
  447. /*
  448.      Mr. Davis is not the author of "GT PowerComm", nor is he the
  449.      designer of MegaLink.  I am.
  450.  
  451.           --Paul Meiners
  452. */
  453.  
  454. A careful reading of the ZMODEM description would also have resulted in
  455. correct spelling of names and a realization that the recently released
  456. shareware program should not infringe on Polytron INC's "PowerCom"
  457. trademark.
  458.  
  459. /*
  460.      "GT PowerComm" is not a "recently released shareware program".  It
  461.      is currently in version 12.21.  After nearly 3 years of development
  462.      and distribution.  Where did he get his facts?
  463.  
  464.      I am coming to the conclusion that Mr. Forsburg's opinions have litte
  465.      to do with reality as the rest of us know it.
  466.  
  467.           --Paul Meiners
  468. */
  469.  
  470. If you come across these files, pass them on to your communications guru
  471. friends for some good chuckles.  The Pascal dialect CRC calculations are
  472. priceless.  But please don't give these cleverly disguised sales pitches to
  473. the incognoscenti without a ton of salt.
  474.  
  475. /*
  476.      The CRC calculator used in "GT PowerComm" are written in MASM, not
  477.      Turbo Pascal, as Mr. Forsburg indicates.  Another final misstatement.
  478.  
  479.           --Paul Meiners
  480. */
  481.  
  482. Chuck Forsberg WA7KGX Author of Pro-YAM communications Tools for PCDOS and Unix
  483. ...!tektronix!reed!omen!caf  Omen Technology Inc "The High Reliability Software"
  484.   17505-V Northwest Sauvie Island Road Portland OR 97231  Voice: 503-621-3406
  485. TeleGodzilla BBS: 621-3746 2400/1200  CIS:70007,2304  Genie:CAF  Source:TCE022
  486.   omen Any ACU 1200 1-503-621-3746 se:--se: link ord: Giznoid in:--in: uucp
  487.   omen!/usr/spool/uucppublic/FILES lists all uucp-able files, updated hourly
  488.  
  489.  
  490. June 26, 1987
  491.  
  492. I have a very hard time taking this document seriously.  I have gone thru it
  493. and tried to make return comments by bracketing them with the C comment markers.
  494. /* .... */   Anything between these marks are my comments, not Mr. Davis' or
  495. Mr. Forsburg's.  I consider this whole document rather a bad case of "sour
  496. grapes" on Mr. Forsburg's part.  And am quite surprised that he distributed
  497. it publicly.  But I consider it an opportunity.  An opportunity to set the
  498. record straight.  Of course, it is indicative of the fact that we have come
  499. to the "great ones" attention.  A sign that we have arrived, so to speak.
  500.  
  501. Regards,
  502.  
  503. Paul Meiners
  504.  
  505. GT PowerComm Author                            (713) 772-2090 Data
  506. MegaLink Designer                              (713) 778-9471 Voice
  507.